#include "martripwd.h"
#include "matrixkb.h"
#include "lcd/lcd1602.h"
#include <stdlib.h>
unsigned int passwd;
// 输入次数
unsigned int input_lenth;
void matrix_pwd()
{
    // 初始化屏幕
    lcd1602_init();
    lcd1602_show_string(8, 0, "password");

    while (1)
    {
        // 扫描获取按键数字
        u8 num = key_matrix_ranks_scan();
        if (num <= 10)
        {
            if (input_lenth > 4)
            {
                lcd1602_show_string(9, 1, "4 num pwd");

                // 计数清空
                input_lenth = 0;
                passwd = 0;

                delay_ms(2000);

                //清屏
                lcd1602_clear();
                lcd1602_show_string(8, 0, "password");
            }
            else
            {
                // 密码左移一位
                passwd *= 10;
                passwd += num % 10;
                input_lenth++;
            }
            char pwd[8]={0};
            __uitoa(passwd,pwd,10);
            lcd1602_show_string(4, 1, pwd);
        }

        // 确认密码
        if (num == 11)
        {
            if (passwd == 1234)
            {
                lcd1602_show_string(7, 1, "success");
            }
            else
            {
                lcd1602_show_string(4, 1, "fail");
                delay_ms(2000);
                lcd1602_clear();
                lcd1602_show_string(8, 0, "password");
            }
            // 计数清空
            input_lenth = 0;
            passwd = 0;
        }
    }
}
